<?php

namespace Pepv\MainBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Simulation
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Pepv\MainBundle\Entity\SimulationRepository")
 */
class Simulation
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
    * @ORM\ManyToMany(targetEntity="Pepv\MainBundle\Entity\Eolienne")
    */
    private $eoliennes;

    /**
    * @ORM\ManyToMany(targetEntity="Pepv\MainBundle\Entity\PV")
    */
    private $pvs;

    /**
    * @ORM\ManyToOne(targetEntity="Pepv\MainBundle\Entity\MarchandEnergie")
    */
    private $marchandEnergie;

    /**
    * @ORM\ManyToOne(targetEntity="Pepv\MainBundle\Entity\Region")
    */
    private $region;

    /**
     * @var array
     *
     * @ORM\Column(name="energiesProduiteParHeure", type="array")
     */
    private $energiesProduiteParHeure;

    /**
     * @var float
     *
     * @ORM\Column(name="deltaConso", type="float")
     */
    private $deltaConso;

    /**
     * @var float
     *
     * @ORM\Column(name="rentabilite", type="float")
     */
    private $rentabilite;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set energiesProduiteParHeure
     *
     * @param array $energiesProduiteParHeure
     * @return Simulation
     */
    public function setEnergiesProduiteParHeure($energiesProduiteParHeure)
    {
        $this->energiesProduiteParHeure = $energiesProduiteParHeure;

        return $this;
    }

    /**
     * Get energiesProduiteParHeure
     *
     * @return array 
     */
    public function getEnergiesProduiteParHeure()
    {
        return $this->energiesProduiteParHeure;
    }

    /**
     * Set deltaConso
     *
     * @param float $deltaConso
     * @return Simulation
     */
    public function setDeltaConso($deltaConso)
    {
        $this->deltaConso = $deltaConso;

        return $this;
    }

    /**
     * Get deltaConso
     *
     * @return float 
     */
    public function getDeltaConso()
    {
        return $this->deltaConso;
    }

    /**
     * Set rentabilite
     *
     * @param float $rentabilite
     * @return Simulation
     */
    public function setRentabilite($rentabilite)
    {
        $this->rentabilite = $rentabilite;

        return $this;
    }

    /**
     * Get rentabilite
     *
     * @return float 
     */
    public function getRentabilite()
    {
        return $this->rentabilite;
    }
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->eoliennes = new \Doctrine\Common\Collections\ArrayCollection();
        $this->pvs = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Add eoliennes
     *
     * @param \Pepv\MainBundle\Entity\Eolienne $eoliennes
     * @return Simulation
     */
    public function addEolienne(\Pepv\MainBundle\Entity\Eolienne $eoliennes)
    {
        $this->eoliennes[] = $eoliennes;

        return $this;
    }

    /**
     * Remove eoliennes
     *
     * @param \Pepv\MainBundle\Entity\Eolienne $eoliennes
     */
    public function removeEolienne(\Pepv\MainBundle\Entity\Eolienne $eoliennes)
    {
        $this->eoliennes->removeElement($eoliennes);
    }

    /**
     * Get eoliennes
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getEoliennes()
    {
        return $this->eoliennes;
    }

    /**
     * Add pvs
     *
     * @param \Pepv\MainBundle\Entity\PV $pvs
     * @return Simulation
     */
    public function addPv(\Pepv\MainBundle\Entity\PV $pvs)
    {
        $this->pvs[] = $pvs;

        return $this;
    }

    /**
     * Remove pvs
     *
     * @param \Pepv\MainBundle\Entity\PV $pvs
     */
    public function removePv(\Pepv\MainBundle\Entity\PV $pvs)
    {
        $this->pvs->removeElement($pvs);
    }

    /**
     * Get pvs
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getPvs()
    {
        return $this->pvs;
    }

    /**
     * Set marchandEnergie
     *
     * @param \Pepv\MainBundle\Entity\MarchandEnergie $marchandEnergie
     * @return Simulation
     */
    public function setMarchandEnergie(\Pepv\MainBundle\Entity\MarchandEnergie $marchandEnergie = null)
    {
        $this->marchandEnergie = $marchandEnergie;

        return $this;
    }

    /**
     * Get marchandEnergie
     *
     * @return \Pepv\MainBundle\Entity\MarchandEnergie 
     */
    public function getMarchandEnergie()
    {
        return $this->marchandEnergie;
    }

    /**
     * Set region
     *
     * @param \Pepv\MainBundle\Entity\Region $region
     * @return Simulation
     */
    public function setRegion(\Pepv\MainBundle\Entity\Region $region = null)
    {
        $this->region = $region;

        return $this;
    }

    /**
     * Get region
     *
     * @return \Pepv\MainBundle\Entity\Region 
     */
    public function getRegion()
    {
        return $this->region;
    }
}
